package dao;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;

import modele.Indicateur;
import modele.Theme;
import modele.Valeur;
import services.persistance.BaseDAO;

public class ValeurDao {
	public static void ajouterValeur(Valeur valeur) {
		BaseDAO.getInstance().ajouter(valeur);
	}
	public static Valeur getValeur(long idValeur) {
		return (Valeur) BaseDAO.getInstance().getObject(Valeur.class, idValeur);
	}
	public static void modifierValeur(Valeur valeur) {
		BaseDAO.getInstance().modifier(valeur);
	}
	
	
	public static List getListeValeursIndicateurParCriteres(Valeur valeur){	

		Criteria criteria = BaseDAO.getInstance().getSession().createCriteria(Valeur.class);
	          
		criteria.add(Restrictions.like("niveau_base", "%"+ valeur.getNiveau_base() +"%"));
	    criteria.createCriteria("emplacement").add(Restrictions.eq("identifiant", valeur.getEmplacement().getIdentifiant() ));
	    criteria.createCriteria("annee").add(Restrictions.eq("identifiant", valeur.getAnnee().getIdentifiant() ));
	  	criteria.createCriteria("indicateur").add(Restrictions.eq("identifiant", valeur.getIndicateur().getIdentifiant() ));

		return (ArrayList<Valeur>) BaseDAO.getInstance().getListObjectByCriteria(criteria);
	}
	public static List getListeValeursCalcule(long idAdmin)
	{
		List liste = new ArrayList<>();
		liste.add(idAdmin);
		return BaseDAO.getInstance().getListObject("queryListeValeursIndicateur",liste);
	}
	
	public static void supprimerValeur(Valeur valeur) {
		BaseDAO.getInstance().supprimer(valeur);
	}
	
}
